//
// Created by Arikes on 9/20/21.
//

#ifndef DESIGNERMODE_REFINEDABSTRACTION_H
#define DESIGNERMODE_REFINEDABSTRACTION_H

#include "Abstraction.h"
namespace BridgeMode
{
    class RefinedAbstraction:public Abstraction
    {
    public:
        RefinedAbstraction(Implementor* implementor):Abstraction(implementor)
        {

        }

        virtual void Operation()
        {
            std::cout<<"扩展抽象化(Refined Abstraction)角色被访问"<<std::endl;
            _implementor->OperationImpl();
        }
    };
}

#endif //DESIGNERMODE_REFINEDABSTRACTION_H


//BridgeMode::Implementor* pImplementor = new BridgeMode::ConcreteImplementorA;
//BridgeMode::Abstraction* pAbstration = new BridgeMode::RefinedAbstraction(pImplementor);
//pAbstration->Operation();